package com.dikeleakagedetection.myapplication.logic.dao

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase

@Database(version = 1, entities = [Dot::class, Tablet::class, User::class], exportSchema = false)
abstract class AppDatabase : RoomDatabase() {

    abstract fun dotDao(): DotDao

    abstract fun tabletDao(): TabletDao

    abstract fun userDao(): UserDao

    companion object {

        private var instance: AppDatabase? = null

        @Synchronized
        fun getDatabase(context: Context): AppDatabase {
            instance?.let {
                return it
            }
            return Room.databaseBuilder(
                context.applicationContext,
                AppDatabase::class.java,
                "app_database"
            ).build().apply {
                instance = this
            }
        }
    }

}